// 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数，使它们的和与 target 最接近。

// 返回这三个数的和。

// 假定每组输入只存在恰好一个解。

// 示例 1：

// 输入：nums = [-1,2,1,-4], target = 1
// 输出：2
// 解释：与 target 最接近的和是 2 (-1 + 2 + 1 = 2)。
// 示例 2：

// 输入：nums = [0,0,0], target = 1
// 输出：0
// 解释：与 target 最接近的和是 0（0 + 0 + 0 = 0）。

var threeSumClosest = function (nums, target) {
  nums = nums.sort((a, b) => a - b);
  let k = -1;
  let min = Infinity,
    abs = Infinity;
  while (k++ < nums.length) {
    const start = nums[k];
    for (let left = k + 1; left < nums.length; left++) {
      const _left = nums[left];
      for (let right = nums.length - 1; right > left; right--) {
        const _right = nums[right];
        const sum = start + _left + _right;
        const _abs = Math.abs(sum - target);
        if (abs > _abs) {
          abs = _abs;
          min = sum;
        }
        console.log(sum, abs);
      }
    }
  }
  return min;
};

const ans = threeSumClosest([0, 0, 0], 1);
console.log("ans: ", ans);
